#include <cstdio>


// 利用New关键字将int开辟到堆区
int* newInt(){
    // 利用New关键字将数据开辟到堆区
    // 指针本质上也是局部变量, 放在栈中, 指针保存的数据放在堆中
    // a的值为10
    int* a = new int(10);
    return a;
}
 
// 利用New关键字将数组开辟到堆区
int * newArr(){
    // 利用New关键字将array开辟到堆区
    int* arr = new int[9];
    for (int i = 0; i < 9; )
    {
        arr[i]=i;
        printf("arr[%d]:%d \n",i++,arr[i]);
    }
    // 释放数组要加[]
    // delete[] arr;
    return arr;
}

int main(){
    int* p = newInt();
    printf("p:%p\n",p);
    printf("value: %p",p);
    printf("value: %d",*p);
    delete p;
    printf("value: %p",p);
    printf("value: %d\n",*p);
    newArr();

}